package com.wzdigit.wms.wms.domain.inv.count;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.wzdigit.framework.orm.model.BasicDomain;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author 
 * @since 2021-10-08
 */
@Data
@Accessors(chain = true)
@TableName("WMS_INV_COUNT_HEADER")
@KeySequence(value = "WMS_INV_COUNT_HEADER_SEQ", clazz = Integer.class)
public class InvCountHeader extends BasicDomain {

    private static final long serialVersionUID = 1L;

    /**
     * 库存盘点单单头ID
     */
    @ApiModelProperty(value = "库存盘点单单头ID")
    @TableId("INV_COUNT_HEADER_ID")
    private BigDecimal invCountHeaderId;

    /**
     * 库存盘点单号
     */
    @ApiModelProperty(value = "库存盘点单号")
    @TableField("INV_COUNT_NO")
    private String invCountNo;

    /**
     * 盘点名称
     */
    @ApiModelProperty(value = "盘点名称")
    @TableField("INV_COUNT_NAME")
    private String invCountName;

    /**
     * 盘点类型
     */
    @ApiModelProperty(value = "盘点类型")
    @TableField("INV_COUNT_TYPE")
    private Integer invCountType;

    /**
     * 盘点日期
     */
    @ApiModelProperty(value = "盘点日期")
    @TableField("INV_COUNT_DATE")
    private Date invCountDate;

    /**
     * 货主
     */
    @ApiModelProperty(value = "货主")
    @TableField("OWNER")
    private Integer owner;

    /**
     * 盘点结果
     */
    @ApiModelProperty(value = "盘点结果")
    @TableField("RESULT")
    private String result;

    /**
     * 指定盘点人
     */
    @ApiModelProperty(value = "指定盘点人")
    @TableField("COUNT_BY")
    private String countBy;

    /**
     * 盘点单来源
     */
    @ApiModelProperty(value = "盘点单来源")
    @TableField("SOURCE")
    private String source;

    /**
     * 任务释放时间
     */
    @ApiModelProperty(value = "任务释放时间")
    @TableField("RELEASE_TIME")
    private Date releaseTime;

    /**
     * 盘点原因
     */
    @ApiModelProperty(value = "盘点原因")
    @TableField("REASON_CODE")
    private String reasonCode;

    /**
     * 盘点原因描述
     */
    @ApiModelProperty(value = "盘点原因描述")
    @TableField("REASON_DESC")
    private String reasonDesc;

    /**
     * 盘点细度
     */
    @ApiModelProperty(value = "盘点细度")
    @TableField("COUNT_GRANULARITY")
    private Integer countGranularity;

    /**
     * 盘点方式
     */
    @ApiModelProperty(value = "盘点方式")
    @TableField("COUNT_MODE")
    private Integer countMode;

    /**
     * 仓库
     */
    @ApiModelProperty(value = "仓库")
    @TableField("WHS_ID")
    private Integer whsId;

    /**
     * 是否包含空库位
     */
    @ApiModelProperty(value = "是否包含空库位")
    @TableField("INCLUDE_EMPTY")
    private Integer includeEmpty;

    /**
     * 是否动态库存
     */
    @ApiModelProperty(value = "是否动态库存")
    @TableField("DYNAMIC_INVENTORY")
    private Integer dynamicInventory;

    /**
     * 是否盲盘
     */
    @ApiModelProperty(value = "是否盲盘")
    @TableField("BLIND_COUNT")
    private Integer blindCount;

    /**
     * 是否显示关键批次属性
     */
    @ApiModelProperty(value = "是否显示关键批次属性")
    @TableField("DISP_KEY_ATTR")
    private Integer dispKeyAttr;

    /**
     * SN扫码方式
     */
    @ApiModelProperty(value = "SN扫码方式")
    @TableField("SN_SCAN_MODE")
    private Integer snScanMode;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("COMMENTS")
    private String comments;

    /**
     * 盘点单状态
     */
    @ApiModelProperty(value = "盘点单状态")
    @TableField("STATUS")
    private Integer status;


    /**
     * 审核人
     */
    @ApiModelProperty(value = "审核人")
    @TableField("APPROVE_USER")
    private String approveUser;

    /**
     * 审核时间
     */
    @ApiModelProperty(value = "审核时间")
    @TableField("APPROVE_TIME")
    private Date approveTime;

    /**
     * 盘点单审核结果
     */
    @ApiModelProperty(value = "盘点单审核结果")
    @TableField("APPROVE_RESULT")
    private Integer approveResult;

    /**
     * 盘点结果审核人
     */
    @ApiModelProperty(value = "盘点结果审核人")
    @TableField("RESULT_APPROVE_USER")
    private String resultApproveUser;

    /**
     * 盘点结果审核时间
     */
    @ApiModelProperty(value = "盘点结果审核时间")
    @TableField("RESULT_APPROVE_TIME")
    private Date resultApproveTime;

    /**
     * 是否非上架库存
     */
    @ApiModelProperty(value = "是否非上架库存")
    @TableField("INCLUDE_NO_PUTAWAY")
    private Integer includeNoPutaway;


}
